# Przykłady funkcji międzyrekordowych wykresu

## Przykłady funkcji top

W podanych przykładach wykorzystano funkcję top, ale można je podobnie zastosować do funkcji bottom, first i last. Należy jednak pamiętać, że funkcje first i last dotyczą tylko tabel przestawnych.

Przykład 1:

Przeanalizujmy poniższą tabelę prostą przedstawiającą użycie funkcji top w tabeli jednowymiarowej:

![Example table image of one dimensional straight table with top function](https://help.qlik.com/pl-PL/qlikview/May2024/Subsystems/Client/Content/Resources/Images/ui_gen_InterRecord4.png)

Przykładowa tabela: Jednowymiarowa tabela prosta z funkcją toptop

| Month | sum(Val) | top(sum(Val)) | sum(Val) / top(sum(Val)) |
| --- | --- | --- | --- |
| - | 21 | 3 | 700% |
| 1 | 3 | 3 | 100% |
| 2 | 7 | 3 | 233% |
| 3 | 11 | 3 | 367% |

W przypadku jednego wymiaru funkcja top będzie zawsze odwoływać się do pierwszego wiersza danych tabeli (wiersz sumy nie jest uwzględniany).

Należy pamiętać, że wyrażenia, w których jest używana funkcja top, będą prawidłowo oceniane także w wierszu sumy, ponieważ wiersz sumy jest jednoznacznie powiązany z określonym segmentem kolumny, w tym przypadku z całą kolumną.

Przykład 2:

Poniżej znajduje się dwuwymiarowa tabela prosta posortowana w pierwszej kolejności wg pola Grp.

![Example table image of two dimensional straight table with total qualifier](https://help.qlik.com/pl-PL/qlikview/May2024/Subsystems/Client/Content/Resources/Images/ui_gen_InterRecord6.png)

Przykładowa tabela: Dwuwymiarowa tabela prosta z kwalifikatorem total total

| Month | Grp | sum(Val) | top(sum(Val)) | top(total sum(Val)) |
| --- | --- | --- | --- | --- |
| - | - | 21 | - | 1 |
| 1 | A | 1 | 1 | 1 |
| 2 | A | 3 | 1 | 1 |
| 3 | A | 5 | 1 | 1 |
| 1 | B | 2 | 2 | 1 |
| 2 | B | 4 | 2 | 1 |
| 3 | B | 6 | 2 | 1 |

Funkcja top bez kwalifikatora total zwróci teraz wyrażenie ocenione w górnym wierszu w obrębie najbardziej wewnętrznej grupy sortowania (w tym przypadku wymiaru Grp). Jedna wartość zostanie zwrócona dla Grp = A i jedna dla Grp = B.

Używając kwalifikatora total w przypadku wielowymiarowym, można ponownie odwołać się do bezwzględnego górnego wiersza tabeli z tą samą wartością zwracaną dla wszystkich wierszy. Wyrażenie będzie oczywiście ocenione dla segmentu kolumny obejmującego całą kolumnę.

Ocena wyrażenia z wykorzystaniem funkcji top bez kwalifikatora total zwróci NULL w wierszu sumy, ponieważ nie można go jednoznacznie powiązać z określonym segmentem kolumny.

Teraz przekształcimy powyższą tabelę prostą w tabelę przestawną z wszystkimi sumami aktywnymi.

![Example table image of two dimensional pivot table with total qualifier](https://help.qlik.com/pl-PL/qlikview/May2024/Subsystems/Client/Content/Resources/Images/ui_gen_InterRecord7.png)

Przykładowa tabela: Dwuwymiarowa tabela przestawna z kwalifikatorem total total

| Month | Grp | sum(Val) | top(sum(Val)) | top(total sum(Val)) |
| --- | --- | --- | --- | --- |
| 1 | A | 1 | 1 | 1 |
| 1 | B | 2 | 1 | 1 |
| 1 | Suma | 3 | 1 | - |
| 2 | A | 3 | 3 | 1 |
| 2 | B | 4 | 3 | 1 |
| 2 | Suma | 7 | 3 | - |
| 3 | A | 5 | 5 | 1 |
| 3 | B | 6 | 5 | 1 |
| 3 | Suma | 11 | 5 | - |
| Suma | - | 21 | - | 1 |

Ocena wyrażenia z wykorzystaniem funkcji top bez kwalifikatora total zwróci NULL w wierszu sumy, ponieważ nie można go jednoznacznie powiązać z określonym segmentem kolumny. Jednakże dla każdego segmentu kolumny ocenione zostaną wszystkie sumy częściowe.

W przypadku wyrażenia z wykorzystaniem kwalifikatora total brak będzie wartości w sumach częściowych, ale zwróci ono wartość w wierszu sumy końcowej.

Przykład 3:

Przeanalizujmy poniższą tabelę prostą posortowaną według pola Grp:

![Example table image of Two dimensional straight table sorted by Grp](https://help.qlik.com/pl-PL/qlikview/May2024/Subsystems/Client/Content/Resources/Images/ui_gen_InterRecord8.png)

Przykładowa tabela: Dwuwymiarowa tabela prosta sortowana według GrpGrp

| Month | Grp | sum(Val) | top(sum(Val)) | sum(Val) / top(sum(Val)) |
| --- | --- | --- | --- | --- |
| - | - | 21 | - | - |
| 1 | A | 1 | 1 | 100% |
| 2 | A | 3 | 1 | 300% |
| 3 | A | 5 | 1 | 500% |
| 1 | B | 2 | 2 | 100% |
| 2 | B | 4 | 2 | 200% |
| 3 | B | 6 | 2 | 300% |

Możemy kontynuować, zmieniając kolejność sortowania pól wewnętrznych, przez co wykres zostanie posortowany w pierwszej kolejności według pola Month. Tabela będzie teraz wyglądać następująco:

![Example table image of Two dimensional straight table sorted by Month](https://help.qlik.com/pl-PL/qlikview/May2024/Subsystems/Client/Content/Resources/Images/ui_gen_InterRecord9.png)

Przykładowa tabela: Dwuwymiarowa tabela prosta sortowana według MonthMonth

| Month | Grp | sum(Val) | top(sum(Val)) | sum(Val) / top(sum(Val)) |
| --- | --- | --- | --- | --- |
| - | - | 21 | - | - |
| 1 | A | 1 | 1 | 100% |
| 1 | B | 2 | 1 | 200% |
| 2 | A | 3 | 3 | 100% |
| 2 | B | 4 | 3 | 133% |
| 3 | A | 5 | 5 | 100% |
| 3 | B | 6 | 5 | 120% |

## Przykłady funkcji above

W podanych przykładach wykorzystano funkcję above, ale można je podobnie zastosować do funkcji below, before i after. Należy jednak pamiętać, że funkcje before i after dotyczą tylko tabel przestawnych.

Przykład 4:

Przeanalizujmy poniższą tabelę prostą przedstawiającą użycie funkcji above w tabeli jednowymiarowej:

![Example table image of one dimensional straight table with Above function](https://help.qlik.com/pl-PL/qlikview/May2024/Subsystems/Client/Content/Resources/Images/ui_gen_InterRecord11.png)

Przykładowa tabela: Jednowymiarowa tabela prosta z funkcją Above Above

| Month | sum(Val) | above(sum(Val)) | sum(Val) / above(sum(Val)) |
| --- | --- | --- | --- |
| - | 21 | - | - |
| 1 | 3 | - | - |
| 2 | 7 | 3 | 233% |
| 3 | 11 | 7 | 157% |

W trzeciej kolumnie znajduje się wyrażenie sum(Val) ocenione jeden wiersz powyżej wiersza bieżącego, co można potwierdzić poprzez porównanie wartości sum(val) w drugiej kolumnie. Funkcja above zwraca NULL w pierwszym wierszu, ponieważ nie ma wiersza powyżej, w którym można by ocenić wyrażenie. Funkcja above zawsze zwraca NULL we wszystkich wierszach sumy.

W czwartej kolumnie przedstawiono najbardziej typowe użycie tej funkcji, tzn. do obliczenia różnicy np. między różnymi okresami.

Przykład 5:

Przeanalizujmy poniższą dwuwymiarową tabelę przestawną:

![Example table image of two dimension pivot table and the effect of total qualifier](https://help.qlik.com/pl-PL/qlikview/May2024/Subsystems/Client/Content/Resources/Images/ui_gen_InterRecord12.png)

Przykładowa tabela: Dwuwymiarowa tabela przestawna z kwalifikatorem total total

| Grp | Month | sum(Val) | above(sum(Val)) | above(total sum(Val)) |
| --- | --- | --- | --- | --- |
| A | 1 | 1 | - | - |
| A | 2 | 3 | 1 | 1 |
| A | 3 | 5 | 3 | 3 |
| A | Suma | 9 | - | - |
| B | 1 | 2 | - | 5 |
| B | 2 | 4 | 2 | 2 |
| B | 3 | 6 | 4 | 4 |
| B | Suma | 12 | - | - |
| Suma | - | 21 | - | - |

Funkcja above bez kwalifikatora total (trzecia kolumna) będzie działać tylko w obrębie poszczególnych grup sortowania. W górnym wierszu poszczególnych segmentów kolumny będzie zwrócone NULL.

Po dodaniu kwalifikatora total (czwarta kolumna) cała kolumna będzie uznawana za jeden segment kolumny. Tylko w górnym wierszu będzie zwrócone NULL. Wszystkie wiersze sumy są ignorowane i zwracają NULL.

## Przykłady funkcji RowNo i NoOfRows

W podanym przykładzie wykorzystano funkcje RowNo i NoOfRows, ale można go podobnie zastosować do funkcji ColumnNo i NoOfColumns. Należy jednak pamiętać, że funkcje ColumnNo i NoOfColumns dotyczą tylko tabel przestawnych.

Przykład 6:

Przeanalizujmy poniższą dwuwymiarową tabelę przestawną:

![Example table image of RowNo and NoOfRows functions](https://help.qlik.com/pl-PL/qlikview/May2024/Subsystems/Client/Content/Resources/Images/ui_gen_InterRecord5_564x227.png)

Przykładowa tabela: RowNo RowNo i funkcje NoOfRows NoOfRows

| Month | Grp | RowNo() | RowNo(total) | NoOfRows() | NoOfRows(total) |
| --- | --- | --- | --- | --- | --- |
| 1 | A | 1 | 1 | 2 | 6 |
| 1 | B | 2 | 2 | 2 | 6 |
| 1 | Suma | 0 | - | 2 | - |
| 2 | A | 1 | 3 | 2 | 6 |
| 2 | B | 2 | 4 | 2 | 6 |
| 2 | Suma | 0 | - | 2 | - |
| 3 | A | 1 | 5 | 2 | 6 |
| 3 | B | 2 | 6 | 2 | 6 |
| 3 | Suma | 0 | - | 2 | - |
| Suma | - | - | 0 | - | 6 |

* Kolumna 3 Funkcja RowNo zwróci numer wiersza w obrębie segmentu kolumny każdej grupy sortowania. W wierszach sum częściowych zwrócony będzie numer wiersza 0, ponieważ sumy te wyraźnie należą do określonego segmentu kolumny. W wierszu sumy końcowej zwrócone zostanie NULL.
* Kolumna 4 Funkcja RowNo z kwalifikatorem total zwróci numer wiersza w obrębie całej kolumny. W wierszach sum częściowych zwrócone zostanie NULL. W wierszu sumy końcowej zwrócona będzie wartość 0.
* Kolumna 5 Funkcja NoOfRows zwróci liczbę wierszy danych w obrębie segmentu kolumny każdej grupy sortowania. W wierszach sum częściowych zwrócona będzie ta sama liczba, co w wierszach danych. W wierszu sumy końcowej zwrócone zostanie NULL.
* Kolumna 6 Funkcja NoOfRows z kwalifikatorem total zwróci liczbę wierszy danych w obrębie całej kolumny, która jest taka sama jak wartość zwrócona w wierszu sumy końcowej. W wierszach sum częściowych zwrócone zostanie NULL.